--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
sbapp/sideband/cli/cmd_system.py 8fe8ef447bb4716f00abd033149cf2ce96839fb4 (8fe8ef44) Text, 6.96 KB
T8b949e# Copyright (c) 2026 Mark Qvist - See LICENSE.md and README.md
Tff7b72import T7ee787RNS
Tff7b72from T7ee787.T7ee787commands Tff7b72import Te6edf3CommandTb4b4b4, Te6edf3registryTb4b4b4, Te6edf3resolve_commandTb4b4b4, Te6edf3format_helpTb4b4b4, Te6edf3format_command_help
Tff7b72from T7ee787. Tff7b72import Te6edf3output Tff7b72as Te6edf3out
Tff7b72def Td2a8ff_cmd_helpTb4b4b4(Te6edf3argsTb4b4b4, Te6edf3sidebandTb4b4b4, Te6edf3ctxTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72not Te6edf3argsTb4b4b4:
Tff7b72return Te6edf3format_helpTb4b4b4(Te6edf3registryTb4b4b4)
Te6edf3cmdTb4b4b4, Te6edf3remaining Tff7b72= Te6edf3resolve_commandTb4b4b4(Te6edf3argsTb4b4b4, Te6edf3registryTb4b4b4)
Tff7b72if Te6edf3cmd Tff7b72is Tff7b72not Tff7b72NoneTb4b4b4:
Tff7b72return Te6edf3format_command_helpTb4b4b4(Te6edf3cmdTb4b4b4)
Te6edf3prefix Tff7b72= Tffa657tupleTb4b4b4(Te6edf3argsTb4b4b4)
Te6edf3subcmds Tff7b72= Te6edf3registryTff7b72.Td2a8ffcommands_at_levelTb4b4b4(Te6edf3prefixTb4b4b4)
Tff7b72if Te6edf3subcmdsTb4b4b4:
Te6edf3lines Tff7b72= Tb4b4b4[Tb4b4b4]
Te6edf3linesTff7b72.Td2a8ffappendTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffSubcommands for Tffd700{Ta5d6ff'Ta5d6ff Ta5d6ff'Tff7b72.Td2a8ffjoinTb4b4b4(Te6edf3prefixTb4b4b4)Tffd700}Ta5d6ff:Tffea00\nTa5d6ff"Tb4b4b4)
Tff7b72for Te6edf3sc Tff7b72in Tffa657sortedTb4b4b4(Te6edf3subcmdsTb4b4b4, Te6edf3keyTff7b72=Tff7b72lambda Te6edf3cTb4b4b4: Te6edf3cTff7b72.Td2a8ffnameTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4:
Te6edf3linesTff7b72.Td2a8ffappendTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ff Tffd700{Te6edf3scTff7b72.Td2a8ffnameTb4b4b4(Tb4b4b4)Tffd700:Ta5d6ff<30sTffd700}Ta5d6ff Tffd700{Te6edf3scTff7b72.Td2a8ffhelp_textTffd700}Ta5d6ff"Tb4b4b4)
Te6edf3linesTff7b72.Td2a8ffappendTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)
Te6edf3linesTff7b72.Td2a8ffappendTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffUse Ta5d6ff'Ta5d6ffhelp Tffd700{Ta5d6ff'Ta5d6ff Ta5d6ff'Tff7b72.Td2a8ffjoinTb4b4b4(Te6edf3prefixTb4b4b4)Tffd700}Ta5d6ff <subcommand>Ta5d6ff'Ta5d6ff for detailed help.Ta5d6ff"Tb4b4b4)
Tff7b72return Ta5d6ff"Tffea00\nTa5d6ff"Tff7b72.Td2a8ffjoinTb4b4b4(Te6edf3linesTb4b4b4)
Tff7b72return Ta5d6fffTa5d6ff"Ta5d6ffUnknown command: Tffd700{Ta5d6ff'Ta5d6ff Ta5d6ff'Tff7b72.Td2a8ffjoinTb4b4b4(Te6edf3argsTb4b4b4)Tffd700}Tffea00\nTa5d6ffType Ta5d6ff'Ta5d6ffhelpTa5d6ff'Ta5d6ff for a list of available commands.Ta5d6ff"
Tff7b72def Td2a8ff_cmd_rawTb4b4b4(Te6edf3argsTb4b4b4, Te6edf3sidebandTb4b4b4, Te6edf3ctxTb4b4b4)Tb4b4b4:
Te6edf3expr Tff7b72= Te6edf3argsTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72if Te6edf3args Tff7b72else Ta5d6ff"Ta5d6ff"
Tff7b72if Tff7b72not Te6edf3exprTb4b4b4: Tff7b72return Ta5d6ff"Ta5d6ffUsage: raw <expression>Tffea00\nTa5d6ffExample: raw sideband.config[Tffea00\"Ta5d6ffdisplay_nameTffea00\"Ta5d6ff]Ta5d6ff"
Tff7b72tryTb4b4b4:
Te6edf3result Tff7b72= Tffa657evalTb4b4b4(Te6edf3exprTb4b4b4)
Tff7b72if Te6edf3result Tff7b72is Tff7b72not Tff7b72NoneTb4b4b4: Tff7b72return Tffa657reprTb4b4b4(Te6edf3resultTb4b4b4)
Tff7b72return Ta5d6ff"Ta5d6ffNoneTa5d6ff"
Tff7b72except Tf85149Exception Tff7b72as Te6edf3eTb4b4b4: Tff7b72return Ta5d6fffTa5d6ff"Ta5d6ffError: Tffd700{Te6edf3eTffd700}Ta5d6ff"
Tff7b72def Td2a8ff_cmd_logTb4b4b4(Te6edf3argsTb4b4b4, Te6edf3sidebandTb4b4b4, Te6edf3ctxTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72not Te6edf3argsTb4b4b4:
Te6edf3level_names Tff7b72= Tb4b4b4{T79c0ff0Tb4b4b4: Ta5d6ff"Ta5d6ffsquelchTa5d6ff"Tb4b4b4, T79c0ff1Tb4b4b4: Ta5d6ff"Ta5d6ffcriticalTa5d6ff"Tb4b4b4, T79c0ff2Tb4b4b4: Ta5d6ff"Ta5d6fferrorTa5d6ff"Tb4b4b4, T79c0ff3Tb4b4b4: Ta5d6ff"Ta5d6ffwarningTa5d6ff"Tb4b4b4,
T79c0ff4Tb4b4b4: Ta5d6ff"Ta5d6ffnoticeTa5d6ff"Tb4b4b4, T79c0ff5Tb4b4b4: Ta5d6ff"Ta5d6ffinfoTa5d6ff"Tb4b4b4, T79c0ff6Tb4b4b4: Ta5d6ff"Ta5d6ffdebugTa5d6ff"Tb4b4b4, T79c0ff7Tb4b4b4: Ta5d6ff"Ta5d6ffextremeTa5d6ff"Tb4b4b4}
Te6edf3name Tff7b72= Te6edf3level_namesTff7b72.Td2a8ffgetTb4b4b4(Te6edf3RNSTff7b72.Td2a8ffloglevelTb4b4b4, Tffa657strTb4b4b4(Te6edf3RNSTff7b72.Td2a8ffloglevelTb4b4b4)Tb4b4b4)
Tff7b72return Ta5d6fffTa5d6ff"Ta5d6ffCurrent log level: Tffd700{Te6edf3RNSTff7b72.Td2a8ffloglevelTffd700}Ta5d6ff (Tffd700{Te6edf3nameTffd700}Ta5d6ff)Ta5d6ff"
Tff7b72tryTb4b4b4:
Te6edf3level Tff7b72= Tffa657intTb4b4b4(Te6edf3argsTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4)
Tff7b72if Te6edf3level Tff7b72< T79c0ff0 Tff7b72or Te6edf3level Tff7b72> T79c0ff7Tb4b4b4: Tff7b72return Ta5d6fffTa5d6ff"Ta5d6ffInvalid log level: Tffd700{Te6edf3levelTffd700}Ta5d6ff. Must be 0-7.Ta5d6ff"
Te6edf3RNSTff7b72.Td2a8ffloglevel Tff7b72= Te6edf3level
Te6edf3level_names Tff7b72= Tb4b4b4{T79c0ff0Tb4b4b4: Ta5d6ff"Ta5d6ffsquelchTa5d6ff"Tb4b4b4, T79c0ff1Tb4b4b4: Ta5d6ff"Ta5d6ffcriticalTa5d6ff"Tb4b4b4, T79c0ff2Tb4b4b4: Ta5d6ff"Ta5d6fferrorTa5d6ff"Tb4b4b4, T79c0ff3Tb4b4b4: Ta5d6ff"Ta5d6ffwarningTa5d6ff"Tb4b4b4,
T79c0ff4Tb4b4b4: Ta5d6ff"Ta5d6ffnoticeTa5d6ff"Tb4b4b4, T79c0ff5Tb4b4b4: Ta5d6ff"Ta5d6ffinfoTa5d6ff"Tb4b4b4, T79c0ff6Tb4b4b4: Ta5d6ff"Ta5d6ffdebugTa5d6ff"Tb4b4b4, T79c0ff7Tb4b4b4: Ta5d6ff"Ta5d6ffextremeTa5d6ff"Tb4b4b4}
Te6edf3name Tff7b72= Te6edf3level_namesTff7b72.Td2a8ffgetTb4b4b4(Te6edf3levelTb4b4b4, Tffa657strTb4b4b4(Te6edf3levelTb4b4b4)Tb4b4b4)
Tff7b72return Ta5d6fffTa5d6ff"Ta5d6ffLog level set to Tffd700{Te6edf3levelTffd700}Ta5d6ff (Tffd700{Te6edf3nameTffd700}Ta5d6ff)Ta5d6ff"
Tff7b72except Tf85149ValueErrorTb4b4b4: Tff7b72return Ta5d6fffTa5d6ff"Ta5d6ffInvalid log level: Tffd700{Te6edf3argsTb4b4b4[T79c0ff0Tb4b4b4]Tffd700}Ta5d6ff. Must be an integer 0-7.Ta5d6ff"
Tff7b72def Td2a8ff_cmd_log_streamTb4b4b4(Te6edf3argsTb4b4b4, Te6edf3sidebandTb4b4b4, Te6edf3ctxTb4b4b4)Tb4b4b4:
Te6edf3ctxTff7b72.Td2a8ffenter_stream_modeTb4b4b4(Tb4b4b4)
Tff7b72return Tff7b72None
Tff7b72def Td2a8ff_cmd_clearTb4b4b4(Te6edf3argsTb4b4b4, Te6edf3sidebandTb4b4b4, Te6edf3ctxTb4b4b4)Tb4b4b4:
Te6edf3ctxTff7b72.Td2a8ffclearTb4b4b4(Tb4b4b4)
Tff7b72return Tff7b72None
Tff7b72def Td2a8ff_cmd_quitTb4b4b4(Te6edf3argsTb4b4b4, Te6edf3sidebandTb4b4b4, Te6edf3ctxTb4b4b4)Tb4b4b4:
Te6edf3ctxTff7b72.Td2a8ffquitTb4b4b4(Tb4b4b4)
Tff7b72return Tff7b72None
Tff7b72def Td2a8ff_cmd_statusTb4b4b4(Te6edf3argsTb4b4b4, Te6edf3sidebandTb4b4b4, Te6edf3ctxTb4b4b4)Tb4b4b4:
Te6edf3lines Tff7b72= Tb4b4b4[Tb4b4b4]
Te6edf3linesTff7b72.Td2a8ffappendTb4b4b4(Te6edf3outTff7b72.Td2a8ffsectionTb4b4b4(Ta5d6ff"Ta5d6ffSideband StatusTa5d6ff"Tb4b4b4)Tb4b4b4)T8b949e# LXMF
Tff7b72if Te6edf3sidebandTff7b72.Td2a8ffmessage_routerTb4b4b4: Te6edf3linesTff7b72.Td2a8ffappendTb4b4b4(Te6edf3outTff7b72.Td2a8ffkvTb4b4b4(Ta5d6ff"Ta5d6ffLXMF routerTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffactiveTa5d6ff"Tb4b4b4)Tb4b4b4)
Tff7b72elseTb4b4b4: Te6edf3linesTff7b72.Td2a8ffappendTb4b4b4(Te6edf3outTff7b72.Td2a8ffkvTb4b4b4(Ta5d6ff"Ta5d6ffLXMF routerTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffinactiveTa5d6ff"Tb4b4b4)Tb4b4b4)
T8b949e# Identity
Te6edf3linesTff7b72.Td2a8ffappendTb4b4b4(Te6edf3outTff7b72.Td2a8ffkvTb4b4b4(Ta5d6ff"Ta5d6ffDisplay nameTa5d6ff"Tb4b4b4, Te6edf3sidebandTff7b72.Td2a8ffconfigTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffdisplay_nameTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff-Ta5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4)
Tff7b72if Te6edf3sidebandTff7b72.Td2a8ffidentityTb4b4b4: Te6edf3linesTff7b72.Td2a8ffappendTb4b4b4(Te6edf3outTff7b72.Td2a8ffkvTb4b4b4(Ta5d6ff"Ta5d6ffIdentity hashTa5d6ff"Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffprettyhexrepTb4b4b4(Te6edf3sidebandTff7b72.Td2a8ffidentityTff7b72.Td2a8ffhashTb4b4b4)Tb4b4b4)Tb4b4b4)
Tff7b72if Tffa657hasattrTb4b4b4(Te6edf3sidebandTb4b4b4, Ta5d6ff"Ta5d6fflxmf_destinationTa5d6ff"Tb4b4b4) Tff7b72and Te6edf3sidebandTff7b72.Td2a8fflxmf_destinationTb4b4b4: Te6edf3linesTff7b72.Td2a8ffappendTb4b4b4(Te6edf3outTff7b72.Td2a8ffkvTb4b4b4(Ta5d6ff"Ta5d6ffLXMF destinationTa5d6ff"Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffprettyhexrepTb4b4b4(Te6edf3sidebandTff7b72.Td2a8fflxmf_destinationTff7b72.Td2a8ffhashTb4b4b4)Tb4b4b4)Tb4b4b4)
T8b949e# LXMF
Tff7b72if Te6edf3sidebandTff7b72.Td2a8ffmessage_routerTb4b4b4:
Te6edf3pn Tff7b72= Te6edf3sidebandTff7b72.Td2a8ffmessage_routerTff7b72.Td2a8ffget_outbound_propagation_nodeTb4b4b4(Tb4b4b4)
Tff7b72if Te6edf3pnTb4b4b4: Te6edf3linesTff7b72.Td2a8ffappendTb4b4b4(Te6edf3outTff7b72.Td2a8ffkvTb4b4b4(Ta5d6ff"Ta5d6ffPropagation nodeTa5d6ff"Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffprettyhexrepTb4b4b4(Te6edf3pnTb4b4b4)Tb4b4b4)Tb4b4b4)
Tff7b72elseTb4b4b4: Te6edf3linesTff7b72.Td2a8ffappendTb4b4b4(Te6edf3outTff7b72.Td2a8ffkvTb4b4b4(Ta5d6ff"Ta5d6ffPropagation nodeTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffnoneTa5d6ff"Tb4b4b4)Tb4b4b4)
T8b949e# Mode
Tff7b72if Te6edf3sidebandTff7b72.Td2a8ffis_daemonTb4b4b4: Te6edf3linesTff7b72.Td2a8ffappendTb4b4b4(Te6edf3outTff7b72.Td2a8ffkvTb4b4b4(Ta5d6ff"Ta5d6ffModeTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffdaemonTa5d6ff"Tb4b4b4)Tb4b4b4)
Tff7b72elif Te6edf3sidebandTff7b72.Td2a8ffis_standaloneTb4b4b4: Te6edf3linesTff7b72.Td2a8ffappendTb4b4b4(Te6edf3outTff7b72.Td2a8ffkvTb4b4b4(Ta5d6ff"Ta5d6ffModeTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffstandaloneTa5d6ff"Tb4b4b4)Tb4b4b4)
Tff7b72elif Te6edf3sidebandTff7b72.Td2a8ffis_serviceTb4b4b4: Te6edf3linesTff7b72.Td2a8ffappendTb4b4b4(Te6edf3outTff7b72.Td2a8ffkvTb4b4b4(Ta5d6ff"Ta5d6ffModeTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffserviceTa5d6ff"Tb4b4b4)Tb4b4b4)
Tff7b72elif Te6edf3sidebandTff7b72.Td2a8ffis_clientTb4b4b4: Te6edf3linesTff7b72.Td2a8ffappendTb4b4b4(Te6edf3outTff7b72.Td2a8ffkvTb4b4b4(Ta5d6ff"Ta5d6ffModeTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffclientTa5d6ff"Tb4b4b4)Tb4b4b4)
T8b949e# Reticulum
Tff7b72if Te6edf3sidebandTff7b72.Td2a8ffreticulumTb4b4b4:
Te6edf3linesTff7b72.Td2a8ffappendTb4b4b4(Te6edf3outTff7b72.Td2a8ffkvTb4b4b4(Ta5d6ff"Ta5d6ffReticulumTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffrunningTa5d6ff"Tb4b4b4)Tb4b4b4)
Te6edf3linesTff7b72.Td2a8ffappendTb4b4b4(Te6edf3outTff7b72.Td2a8ffkvTb4b4b4(Ta5d6ff"Ta5d6ffTransportTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffenabledTa5d6ff" Tff7b72if Te6edf3RNSTff7b72.Td2a8ffReticulumTff7b72.Td2a8fftransport_enabledTb4b4b4(Tb4b4b4) Tff7b72else Ta5d6ff"Ta5d6ffdisabledTa5d6ff"Tb4b4b4)Tb4b4b4)
Tff7b72elseTb4b4b4: Te6edf3linesTff7b72.Td2a8ffappendTb4b4b4(Te6edf3outTff7b72.Td2a8ffkvTb4b4b4(Ta5d6ff"Ta5d6ffReticulumTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffnot startedTa5d6ff"Tb4b4b4)Tb4b4b4)
T8b949e# Telemetry
Te6edf3linesTff7b72.Td2a8ffappendTb4b4b4(Te6edf3outTff7b72.Td2a8ffkvTb4b4b4(Ta5d6ff"Ta5d6ffTelemetryTa5d6ff"Tb4b4b4, Te6edf3outTff7b72.Td2a8ffbool_strTb4b4b4(Te6edf3sidebandTff7b72.Td2a8ffconfigTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6fftelemetry_enabledTa5d6ff"Tb4b4b4, Tff7b72FalseTb4b4b4)Tb4b4b4)Tb4b4b4)Tb4b4b4)
T8b949e# Voice
Te6edf3linesTff7b72.Td2a8ffappendTb4b4b4(Te6edf3outTff7b72.Td2a8ffkvTb4b4b4(Ta5d6ff"Ta5d6ffVoiceTa5d6ff"Tb4b4b4, Te6edf3outTff7b72.Td2a8ffbool_strTb4b4b4(Te6edf3sidebandTff7b72.Td2a8ffconfigTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffvoice_enabledTa5d6ff"Tb4b4b4, Tff7b72FalseTb4b4b4)Tb4b4b4)Tb4b4b4)Tb4b4b4)
Tff7b72if Tffa657hasattrTb4b4b4(Te6edf3sidebandTb4b4b4, Ta5d6ff"Ta5d6ffvoice_runningTa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3linesTff7b72.Td2a8ffappendTb4b4b4(Te6edf3outTff7b72.Td2a8ffkvTb4b4b4(Ta5d6ff"Ta5d6ffVoice runningTa5d6ff"Tb4b4b4, Te6edf3outTff7b72.Td2a8ffbool_strTb4b4b4(Te6edf3sidebandTff7b72.Td2a8ffvoice_runningTb4b4b4)Tb4b4b4)Tb4b4b4)
T8b949e# Conversations and announces
Tff7b72tryTb4b4b4:
Te6edf3convs Tff7b72= Te6edf3sidebandTff7b72.Td2a8fflist_conversationsTb4b4b4(Tb4b4b4)
Te6edf3linesTff7b72.Td2a8ffappendTb4b4b4(Te6edf3outTff7b72.Td2a8ffkvTb4b4b4(Ta5d6ff"Ta5d6ffConversationsTa5d6ff"Tb4b4b4, Tffa657strTb4b4b4(Tffa657lenTb4b4b4(Te6edf3convsTb4b4b4)Tb4b4b4)Tb4b4b4)Tb4b4b4)
Tff7b72except Tf85149ExceptionTb4b4b4: Te6edf3linesTff7b72.Td2a8ffappendTb4b4b4(Te6edf3outTff7b72.Td2a8ffkvTb4b4b4(Ta5d6ff"Ta5d6ffConversationsTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff-Ta5d6ff"Tb4b4b4)Tb4b4b4)
Tff7b72tryTb4b4b4:
Te6edf3announces Tff7b72= Te6edf3sidebandTff7b72.Td2a8fflist_announcesTb4b4b4(Tb4b4b4)
Te6edf3linesTff7b72.Td2a8ffappendTb4b4b4(Te6edf3outTff7b72.Td2a8ffkvTb4b4b4(Ta5d6ff"Ta5d6ffAnnounce StreamTa5d6ff"Tb4b4b4, Tffa657strTb4b4b4(Tffa657lenTb4b4b4(Te6edf3announcesTb4b4b4)Tb4b4b4)Tb4b4b4)Tb4b4b4)
Tff7b72except Tf85149ExceptionTb4b4b4: Te6edf3linesTff7b72.Td2a8ffappendTb4b4b4(Te6edf3outTff7b72.Td2a8ffkvTb4b4b4(Ta5d6ff"Ta5d6ffAnnounce StreamTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff-Ta5d6ff"Tb4b4b4)Tb4b4b4)
T8b949e# Plugins
Tff7b72tryTb4b4b4:
Te6edf3n_cmd Tff7b72= Tffa657lenTb4b4b4(Te6edf3sidebandTff7b72.Td2a8ffactive_command_pluginsTb4b4b4)
Te6edf3n_svc Tff7b72= Tffa657lenTb4b4b4(Te6edf3sidebandTff7b72.Td2a8ffactive_service_pluginsTb4b4b4)
Te6edf3n_tel Tff7b72= Tffa657lenTb4b4b4(Te6edf3sidebandTff7b72.Td2a8ffactive_telemetry_pluginsTb4b4b4)
Te6edf3linesTff7b72.Td2a8ffappendTb4b4b4(Te6edf3outTff7b72.Td2a8ffkvTb4b4b4(Ta5d6ff"Ta5d6ffPluginsTa5d6ff"Tb4b4b4, Ta5d6fffTa5d6ff"Ta5d6ffcmd=Tffd700{Te6edf3n_cmdTffd700}Ta5d6ff svc=Tffd700{Te6edf3n_svcTffd700}Ta5d6ff telemetry=Tffd700{Te6edf3n_telTffd700}Ta5d6ff"Tb4b4b4)Tb4b4b4)
Tff7b72except Tf85149ExceptionTb4b4b4: Te6edf3linesTff7b72.Td2a8ffappendTb4b4b4(Te6edf3outTff7b72.Td2a8ffkvTb4b4b4(Ta5d6ff"Ta5d6ffPluginsTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff-Ta5d6ff"Tb4b4b4)Tb4b4b4)
Tff7b72return Ta5d6ff"Tffea00\nTa5d6ff"Tff7b72.Td2a8ffjoinTb4b4b4(Te6edf3linesTb4b4b4)
Tff7b72def Td2a8ffregisterTb4b4b4(Te6edf3sidebandTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Te6edf3registryTff7b72.Td2a8ffregisterTb4b4b4(Te6edf3CommandTb4b4b4(
Te6edf3pathTff7b72=Tb4b4b4(Ta5d6ff"Ta5d6ffhelpTa5d6ff"Tb4b4b4,Tb4b4b4)Tb4b4b4,
Te6edf3help_textTff7b72=Ta5d6ff"Ta5d6ffShow help for all commands or a specific commandTa5d6ff"Tb4b4b4,
Te6edf3help_detailTff7b72=Ta5d6ff"""Ta5d6ffhelp [command path]
Ta5d6ff With no arguments, lists all available commands.
Ta5d6ff With a command path, shows detailed help for that command.Ta5d6ff"""Tb4b4b4,
Te6edf3max_argsTff7b72=T79c0ff10Tb4b4b4,
Te6edf3handlerTff7b72=Te6edf3_cmd_helpTb4b4b4,
Tb4b4b4)Tb4b4b4)
Te6edf3registryTff7b72.Td2a8ffregisterTb4b4b4(Te6edf3CommandTb4b4b4(
Te6edf3pathTff7b72=Tb4b4b4(Ta5d6ff"Ta5d6ffrawTa5d6ff"Tb4b4b4,Tb4b4b4)Tb4b4b4,
Te6edf3help_textTff7b72=Ta5d6ff"Ta5d6ffEvaluate a Python expression on the sideband coreTa5d6ff"Tb4b4b4,
Te6edf3help_detailTff7b72=Ta5d6ff"""Ta5d6ffraw <expression>
Ta5d6ff Evaluates the given Python expression with the Sideband core
Ta5d6ff bound as the global variable Ta5d6ff'Ta5d6ffsidebandTa5d6ff'Ta5d6ff.
Ta5d6ff Example: raw sideband.config[Ta5d6ff"Ta5d6ffdisplay_nameTa5d6ff"Ta5d6ff]Ta5d6ff"""Tb4b4b4,
Te6edf3min_argsTff7b72=T79c0ff1Tb4b4b4,
Te6edf3handlerTff7b72=Te6edf3_cmd_rawTb4b4b4,
Tb4b4b4)Tb4b4b4)
Te6edf3registryTff7b72.Td2a8ffregisterTb4b4b4(Te6edf3CommandTb4b4b4(
Te6edf3pathTff7b72=Tb4b4b4(Ta5d6ff"Ta5d6fflogTa5d6ff"Tb4b4b4,Tb4b4b4)Tb4b4b4,
Te6edf3help_textTff7b72=Ta5d6ff"Ta5d6ffGet or set the RNS log levelTa5d6ff"Tb4b4b4,
Te6edf3help_detailTff7b72=Ta5d6ff"""Ta5d6fflog [level]
Ta5d6ff With no arguments, shows the current log level.
Ta5d6ff With a numeric argument (0-7), sets the log level.
Ta5d6ff 0=squelch 1=critical 2=error 3=warning 4=notice 5=info 6=debug 7=extremeTa5d6ff"""Tb4b4b4,
Te6edf3max_argsTff7b72=T79c0ff1Tb4b4b4,
Te6edf3handlerTff7b72=Te6edf3_cmd_logTb4b4b4,
Tb4b4b4)Tb4b4b4)
Te6edf3registryTff7b72.Td2a8ffregisterTb4b4b4(Te6edf3CommandTb4b4b4(
Te6edf3pathTff7b72=Tb4b4b4(Ta5d6ff"Ta5d6fflogTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffstreamTa5d6ff"Tb4b4b4)Tb4b4b4,
Te6edf3help_textTff7b72=Ta5d6ff"Ta5d6ffStream log output until Enter is pressedTa5d6ff"Tb4b4b4,
Te6edf3help_detailTff7b72=Ta5d6ff"""Ta5d6fflog stream
Ta5d6ff Enters log-streaming mode. All RNS log output is printed
Ta5d6ff directly to the terminal in real time. Press Enter to return
Ta5d6ff to the interactive prompt.Ta5d6ff"""Tb4b4b4,
Te6edf3max_argsTff7b72=T79c0ff0Tb4b4b4,
Te6edf3handlerTff7b72=Te6edf3_cmd_log_streamTb4b4b4,
Tb4b4b4)Tb4b4b4)
Te6edf3registryTff7b72.Td2a8ffregisterTb4b4b4(Te6edf3CommandTb4b4b4(
Te6edf3pathTff7b72=Tb4b4b4(Ta5d6ff"Ta5d6ffclearTa5d6ff"Tb4b4b4,Tb4b4b4)Tb4b4b4,
Te6edf3help_textTff7b72=Ta5d6ff"Ta5d6ffClear the console outputTa5d6ff"Tb4b4b4,
Te6edf3handlerTff7b72=Te6edf3_cmd_clearTb4b4b4,
Tb4b4b4)Tb4b4b4)
Te6edf3registryTff7b72.Td2a8ffregisterTb4b4b4(Te6edf3CommandTb4b4b4(
Te6edf3pathTff7b72=Tb4b4b4(Ta5d6ff"Ta5d6ffquitTa5d6ff"Tb4b4b4,Tb4b4b4)Tb4b4b4,
Te6edf3help_textTff7b72=Ta5d6ff"Ta5d6ffPersist data and exit the consoleTa5d6ff"Tb4b4b4,
Te6edf3handlerTff7b72=Te6edf3_cmd_quitTb4b4b4,
Tb4b4b4)Tb4b4b4)
Te6edf3registryTff7b72.Td2a8ffregisterTb4b4b4(Te6edf3CommandTb4b4b4(
Te6edf3pathTff7b72=Tb4b4b4(Ta5d6ff"Ta5d6ffstatusTa5d6ff"Tb4b4b4,Tb4b4b4)Tb4b4b4,
Te6edf3help_textTff7b72=Ta5d6ff"Ta5d6ffShow overall Sideband status summaryTa5d6ff"Tb4b4b4,
Te6edf3help_detailTff7b72=Ta5d6ff"""Ta5d6ffstatus
Ta5d6ff Displays a summary of the Sideband instance statusTa5d6ff"""Tb4b4b4,
Te6edf3max_argsTff7b72=T79c0ff0Tb4b4b4,
Te6edf3handlerTff7b72=Te6edf3_cmd_statusTb4b4b4,
Tb4b4b4)Tb4b4b4)
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────